[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
##############################################################################
###+---------+################################################################
#+-| RLOCK() |-----------------------------------------------------+##########
#| +---------+ Attempts to lock current record in current database |##########
#+-----------------------------------------------------------------+##########
##############################################################################
##############################################################################
#+--| Summary |------------------+############################################
#|     #INCLUDE database.hdr     |############################################
#+-------------------------------+############################################
##############################################################################
##############################################################################
#+--| Syntax |------------------------------+#################################
#|     FUNCTION LOGICAL rlock PROTOTYPE     |#################################
#+------------------------------------------+#################################
##############################################################################
##############################################################################
###########+---| Description |-----------------------------------+############
###########| The rlock() function attempts to lock the current   |############
###########| record in the current database.  If the lock is     |############
###########| successful, rlock() returns TRUE.  Any locks,       |############
###########| record or file assigned to the current alias are    |############
###########| released, and if rlock() is unsuccessful, the       |############
###########| locks are not restored.                             |############
###########| --------------------------------------------------- |############
###########| Once an rlock() is applied to a process, no other   |############
###########| process can write to the record or lock the record. |############
###########| However, rlock() does not prevent another process   |############
###########| from reading the locked record.                     |############
###########+-----------------------------------------------------+############
##############################################################################
##############################################################################
#########+--| Example 1 |-------------------------------------------+#########
#########| *    Lock a record prior to using the EDIT command.      |#########
#########|                                                          |#########
#########| IF .NOT. rlock()                                         |#########
#########|     ? "Unable to access record..."                       |#########
#########| ENDIF                                                    |#########
#########| EDIT RECORD recno()                                      |#########
#########| UNLOCK                                                   |#########
#########+----------------------------------------------------------+#########
##############################################################################
##############################################################################
#########+--| Example 2 |-------------------------------------------+#########
#########| *    rlock() removes any previous lock.  (NOTE:          |#########
#########| *    even though rlock() is a function, we can           |#########
#########| *    treat it as a procedure, i.e., call the             |#########
#########| *    function and IGNORE the return value.  FORCE        |#########
#########| *    gives a WARNING when this is done, yet it is        |#########
#########| *    NOT illegal.                                        |#########
#########|                                                          |#########
#########| GOTO 1                                                   |#########
#########| rlock()                     && locks record 1            |#########
#########| GOTO 2                                                   |#########
#########| rlock()                     && releases lock on record 1 |#########
#########|                             && and locks record 2        |#########
#########+----------------------------------------------------------+#########
##############################################################################

See Also: a_flock() a_rlock() flock() OPEN UNLOCK USE
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson